﻿Imports BUS
Imports DTO

Public Class MH_DanhSachNguoiDung


    Dim dsNguoiDung As New List(Of NguoiDungDTO)

    Public Sub LoadDanhSachNguoiDung()
        'Load danh sách người dùng
        Dim ndBUS As New NguoiDungBUS
        dsNguoiDung = ndBUS.LayDanhSach

        dgvDanhSach.Rows.Clear()
        For i As Integer = 0 To dsNguoiDung.Count - 1
            dgvDanhSach.Rows.Add(i + 1, dsNguoiDung(i).TenDangNhap, dsNguoiDung(i).MaLoaiNguoiDung)
        Next
    End Sub

    Private Sub MH_DanhSachNguoiDung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Load danh sách loại người dùng
        Dim lndBUS As New LoaiNguoiDungBUS
        Dim ds As New List(Of LoaiNguoiDungDTO)
        ds = lndBUS.LayDanhSach
        cboLoaiND.DataSource = ds
        cboLoaiND.DisplayMember = ("TenLoaiNguoiDung")
        cboLoaiND.ValueMember = ("MaLoaiNguoiDung")
        'Load danh sách người dùng
        LoadDanhSachNguoiDung()
    End Sub


    Private Sub dgvDanhSach_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvDanhSach.RowEnter
        If dgvDanhSach.CurrentRow IsNot Nothing Then
            Dim index As Integer = e.RowIndex

            txtTenDN.Text = dsNguoiDung(index).TenDangNhap
            cboLoaiND.SelectedValue = dsNguoiDung(index).MaLoaiNguoiDung
        End If
    End Sub

    Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
        Me.Close()
    End Sub

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click

        If txtTenDN.Text.Trim = "" Then
            MessageBox.Show("Xin mời nhập đầy đủ thông tin cần đăng ký.")
        Else
            Dim ndDTO As New NguoiDungDTO
            ndDTO.TenDangNhap = txtTenDN.Text.Trim
            ndDTO.MaLoaiNguoiDung = cboLoaiND.SelectedValue
            ndDTO.MatKhau = "111"
            Dim ndBUS As New NguoiDungBUS
            Dim kq As Integer = ndBUS.ThemNguoiDung(ndDTO)

            If kq = -1 Then
                MessageBox.Show("Tên đăng nhập đã có người sử dụng. " + vbNewLine + "Vui lòng thêm với tên đăng nhập khác.")
            ElseIf kq = 0 Then
                MessageBox.Show("Thêm thất bại.")
            Else
                MessageBox.Show("Thêm thành công." + vbNewLine + "Mật khẩu mặc định là : 111 ")
                'Load danh sách người dùng
                LoadDanhSachNguoiDung()
            End If

        End If
    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        If dgvDanhSach.CurrentRow IsNot Nothing Then
            Dim index As Integer = dgvDanhSach.CurrentRow.Index
            Dim ndDTO As New NguoiDungDTO
            ndDTO.TenDangNhap = dsNguoiDung(index).TenDangNhap

            Dim ndBUS As New NguoiDungBUS
            Dim kq As Integer = ndBUS.XoaNguoiDung(ndDTO)

            If kq = 1 Then
                MessageBox.Show("Xóa thành công.")
                'Load danh sách người dùng
                LoadDanhSachNguoiDung()
            Else
                MessageBox.Show("Xóa thất bại.")
            End If

        End If
    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        If dgvDanhSach.CurrentRow IsNot Nothing Then
            Dim index As Integer = dgvDanhSach.CurrentRow.Index
            Dim ndDTO As New NguoiDungDTO
            ndDTO.TenDangNhap = dsNguoiDung(index).TenDangNhap
            ndDTO.MaLoaiNguoiDung = cboLoaiND.SelectedValue

            If txtTenDN.Text.Trim() <> ndDTO.TenDangNhap Then
                MessageBox.Show("Bạn không được phép sửa tên đăng nhập.")
                txtTenDN.Text = ndDTO.TenDangNhap
            Else
                Dim ndBUS As New NguoiDungBUS
                Dim kq As Integer = ndBUS.CapNhatNguoiDung(ndDTO)

                If kq = 1 Then
                    MessageBox.Show("Cập nhật thành công.")
                    'Load danh sách người dùng
                    LoadDanhSachNguoiDung()
                Else
                    MessageBox.Show("Cập nhật thất bại.")
                End If

            End If

        End If
    End Sub
End Class